博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Laravel 5.5 Blade::if 简介
阅读量:6922 次
发布时间:2019-06-27

本文共 1184 字,大约阅读时间需要 3 分钟。

Laravel 5.5 引入了一个新的黑科技,就是你可以使用 Blade::if 来进行一些简单的逻辑判断啦!想不出应用场景在哪?想象下面的场景:

  1. 判断一个用户是否是 admin

  2. 判断应用的开发环境不同以便我们加载不同的 script 文件

上面的两个常见的场景,其实我们在使用的使用通常会用下面的写法来解决:

// 1.@if(auth()->check() && auth()->user()->isAdmin())@endif// 2.@if(app()->environment('production')) @endif

很明显,如果我们需要在页面中多次重复使用上面的逻辑判断,我们就会写很多重复的代码,我们是否可以寻求一种自定义的 blade 标签来进行简单的逻辑判断,这样就OK了。

这就是 Blade::if 产生的原因了,我们来看看它的用法就知道了:

use Illuminate\Support\Facades\Blade;Blade::if('admin', function () {    return auth()->check() && auth()->user()->isAdmin(); });

注意我们上面引用 Illuminate\Support\Facades\Blade 类,再定义一个 if 标签,标签的名字就是 admin,所以在视图文件使用的时候是这样的:

@admin    管理员页面@else    其他页面@endadmin

注意到没。我们直接使用的是 @admin 的用法,思路清晰直白。

再来看第二个应用场景,如何便捷的判断应用的环境是否是生产环境,我们可以这样:

Blade::if('prod', function () {    return app()->environment('production'); });

同理,如果我们是在 blade 视图使用这个判断的话,直接这样:

@prod  @endprod

那如果说,我想传入参数呢?Easy:

Blade::if('env', function ($env) { return app()->environment($env); });

注意 function 这里我们传入了 $env 变量,使用的使用相应地传入值就好,大概是这样:

@env('production')  @endenv

这是线上环境!

@env('local')  @endenv

这是本地环境!

是不是超方便简单!

总结

在 Laravel 5.5 时善用 Blade::if ,确实是可以在特定的应用场景中带来便利的。我觉得你也应该知道这个小技巧,哈哈哈。

 

来源:

转载于:https://www.cnblogs.com/lamp01/p/8443173.html

你可能感兴趣的文章
MDK使用技巧及bug解决
查看>>
移除button在IE67下的黑边
查看>>
FusionShpere 简介
查看>>
java正则判断URL
查看>>
爬取百度贴吧的一些图片,使用request、re、urllib模块
查看>>
Python 斐波那契数列优化
查看>>
Servlet 笔记
查看>>
2015-1-22(mac升级yosemite之后xampp中mysql不能启动的问题解决)
查看>>
2013年6月工作小结-- 再论需求与设计,别总去×××拉松
查看>>
【源码】c#编写的安卓客户端与Windows服务器程序进行网络通信
查看>>
ClistCtrl列表控件添加复选框功能
查看>>
Storm 集群异常的解决
查看>>
7_12_2013 B: A simple problem
查看>>
linux常用命令less选项
查看>>
为什么php运行了 ignore_user_abort之后,前台网页访问不了呢。一直在加载
查看>>
ttylinux升级busybox脚本
查看>>
SEO 使用 robots.txt 文件拦截或删除网页
查看>>
Solr 删除索引
查看>>
rm -rf/ 又引发了一个血案
查看>>
我的友情链接
查看>>